package jm.algorithm.sort;

/**
 * @Description 插入排序挪动优化
 * @date 2022/5/3 9:33
 */
public class InsertionSortMove<T extends Comparable<T>> extends Sort<T>  {

    @Override
    protected void sort() {
        for (int begin = 1; begin < arr.length; begin++) {
            int cur = begin;
            T v = arr[cur];
            while (cur > 0 && cmp(v,arr[cur - 1]) < 0){ // 比较当前位置和前一个位置大小
                arr[cur] = arr[cur - 1]; // 往前挪动元素
                cur--;
            }
            arr[cur] = v;
        }
    }
}
